/*

 */
package com.ohos.connent.modelcloud.biz.modular.pro.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ohos.connent.modelcloud.biz.modular.pro.entity.BizProfile;
import com.ohos.connent.modelcloud.biz.modular.pro.param.*;
import com.ohos.connent.modelcloud.biz.modular.pro.result.BizProfileDetailResult;
import com.ohos.connent.modelcloud.biz.modular.pro.result.BizProfileUploadAuthResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


/**
 * Profile-Service接口
 **/
public interface BizProfileService extends IService<BizProfile> {

    /**
     * 获取Profile分页
     *
     * @param bizProfilePageParam 分页参数
     * @return 分页列表
     */
    Page<BizProfile> page(BizProfilePageParam bizProfilePageParam);

    /**
     * 获取Profile列表
     *
     * @param bizProfileListParam 分页参数
     * @return 分页列表
     */
    List<BizProfile> list(BizProfileListParam bizProfileListParam);

    /**
     * 新增Profile库文件
     *
     * @param bizProfileAddParam 新增加的Profile信息
     */
    void add(BizProfileAddParam bizProfileAddParam);


    /**
     * 删除Profile库文件
     *
     * @param bizProfileIdsParam Profileid集合
     */
    void delete(BizProfileIdsParam bizProfileIdsParam);

    /**
     * 下载Profile库文件
     * @param bizProfileFileIdParam
     */
    String getFileDownloadAuthUrlHUAWEI(BizProfileFileIdParam bizProfileFileIdParam);

    /**
     * 获取华为云文件上传授权URL和文件id
     * @param bizProfileUploadParam
     * @return
     */
    BizProfileUploadAuthResult getHWYunUploadAuthUrlAndFileId(BizProfileUploadParam bizProfileUploadParam);

    /**
     * 根据id查询实体
     * @param id
     * @return
     */
    BizProfile queryEntity(String id);

    /**
     * 上传文件
     * @param file 文件流
     * @param fileId 文件id
     */
    void upload(MultipartFile file, String fileId);


    /**
     * 获取Profile详情
     * @param id
     * @return
     */
    BizProfileDetailResult detail(String id);

    /**
     * 编辑Profile
     * @param bizProfileEditParam
     */
    void edit(BizProfileEditParam bizProfileEditParam);

}
